package com.example.demo2map;

import com.example.demo1hashset.Teacher;

import java.util.Map;
import java.util.TreeMap;

public class MapDemo7 {
    public static void main(String[] args) {
        // 目标：TreeMap集合（原理和用法于TreeSet一样）
        // 默认情况下，你传递以自定义对象给TreeMap集合，那么TreeMap集合不知道使用那个键来排序，所有会报错
        // 因此有两种解决方法
        // 1.让Teacher实现Comparable接口，重写compareTo方法，让TreeMap集合使用这个方法来排序。
        // 2.new 一个Comparator接口的匿名内部类，重写compare方法，让TreeMap集合使用这个方法来排序。
        //   可以使用Lambda表达式简化
//        Map<Teacher, String> map = new TreeMap<>(new Comparator<Teacher>() {
//            @Override
//            public int compare(Teacher o1, Teacher o2) {
//                return Double.compare(o2.getSalary(), o1.getSalary());
//            }
//        }); // 按照键排序：升序

        //使用Lambda表达式简化
        Map<Teacher, String> map = new TreeMap<>((o1, o2) -> Double.compare(o2.getSalary(), o1.getSalary())); // 按照键排序：升序
        map.put(new Teacher("老陈", 20, 6232.4), "462期");
        map.put(new Teacher("dlei", 18, 3999.5), "422期");
        map.put(new Teacher("老王", 22, 9999.9), "461期");
        map.put(new Teacher("老李", 20, 1999.9), "423期");
        System.out.println(map);
    }
}
